﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Threading;
using Microsoft.Practices.ObjectBuilder2;

namespace 示例.Common
{
    public class 时间
    {
        public static void 刷新当前时间(Action<string> 显示时间,
            TimeSpan 刷新间隔, string 时间格式)
        {
            var 时间计时器 = new DispatcherTimer { Interval = 刷新间隔 };
            时间计时器.Tick += (o, e) => 显示时间(DateTime.Now.ToString(时间格式));
            时间计时器.Start();
        }


        public static void 单次启动(int 延时毫秒, Action 启动方法)
        {
            var time延时 = new DispatcherTimer
            {
                Interval =
                    new TimeSpan(0, 0, 0, 0, 延时毫秒)
            };
            time延时.Tick += (o, e) =>
            {
                time延时.Stop();
                启动方法();
            };
            time延时.Start();
        }




        public static List<DispatcherTimer> 定时列表 = new List<DispatcherTimer>();

        public static void 关闭所有()
        {
            定时列表.Where(x => x != null)
                .ForEach(x => x.Stop());
            定时列表.Clear();
        }


        public static void 循环(int 间隔毫秒, Action 启动方法)
        {

            var timer = new DispatcherTimer
            {
                Interval = TimeSpan.FromMilliseconds(间隔毫秒)
            };
            定时列表.Add(timer);
            timer.Tick += (o, e) => { 启动方法(); };
            timer.Start();
        }
    }
}
